# 高阶函数-reduce()
from functools import reduce

"""
reduce(func,iterable)
功能:
    每一次从 iterable 拿出两个元素，放入到func函数中进行处理，得出一个计算结果，然后把这个计算结果和iterable中的第三个元素，放入到func函数中继续运算，
    得出的结果和之后的第四个元素，加入到func函数中进行处理，以此类推，直到最后的元素都参与了运算
参数:
    func:内置函数或自定义函数
    iterable:可迭代的数据
返回值:最终的运算处理结果
注意:使用reduce函数时，需要导入 from functools import reducel
"""

# (1) [5,2,3,1] ==> 5231
# 普通方法，用for
list_number = [5, 2, 3, 1]
str_number = ''
for i in list_number:
    str_number += str(i)
print(str_number)


# 使用reduce完成
def revert(num1, num2):
    return str(num1) + str(num2)


list_number = [5, 2, 3, 1]
str_number = reduce(revert, list_number)
print(str_number)


# (2)把字符串的'456'==>456
# 要求不能使用int方法进行类型的转换时，如何解决上面的问题

